home *** CD-ROM | disk | FTP | other *** search
/ Whiteline: delta / whiteline CD Series - delta.iso / tex / style / misc / amstex.sty (.txt) < prev    next >
LaTeX Document  |  1995-11-25  |  51KB  |  1,354 lines

  1. %% This is file `amstex.sty' generated from `amstex.doc'
  2. %% on 21-JUN-1991 by the docstrip.ams utility (1.0). 
  3. %%@texfile{%
  4. %% filename="amstex.sty",
  5. %% version="1.1",
  6. %% date="21-JUN-1991",
  7. %% filetype="AMS-LaTeX: option",
  8. %% copyright="Copyright (C) American Mathematical Society, all rights
  9. %%   reserved.  Copying of this file is authorized only if either:
  10. %%   (1) you make absolutely no changes to your copy, including name;
  11. %%   OR (2) if you do make changes, you first rename it to some other
  12. %%   name.",
  13. %% author="American Mathematical Society",
  14. %% address="American Mathematical Society,
  15. %%   Technical Support Group,
  16. %%   P. O. Box 6248,
  17. %%   Providence, RI 02940,
  18. %%   USA",
  19. %% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
  20. %% email="Internet: Tech-Support@Math.AMS.com",
  21. %% checksumtype="line count",
  22. %% checksum="1372",
  23. %% codetable="ISO/ASCII",
  24. %% keywords="latex, amslatex, ams-latex, math, amstex, ams-tex",
  25. %% abstract="This file is part of the AMS-\LaTeX{} package, ver. 1.1.
  26. %%   It is a \LaTeX{} option file that adapts most of the mathematical
  27. %%   macros of AMS-\TeX{} for use in \LaTeX{}. It is one of the main
  28. %%   parts of a package called `AMS-\LaTeX{}'."
  29. \expandafter\ifx\csname amstex.sty\endcsname\relax
  30. \expandafter\def\csname amstex.sty\endcsname{}
  31. \else\message{---already loaded}\endinput\fi
  32. \def\filename{amstex.sty}
  33. \def\fileversion{1.1} \def\filedate{21-JUN-1991}
  34. \immediate\write16{%
  35. AMS-LaTeX option `\filename' (\fileversion, \filedate)}
  36. %%% end of file header
  37. \input{amstext.sty}          % AMS \text macro
  38. \input{amsfonts.sty}         % AMS font specific stuff
  39. \input{amsbsy.sty}           % AMS \boldsymbol
  40. \def\FN@{\futurelet\next}
  41. \def\DN@{\def\next@}
  42. \def\RIfM@{\relax\protect\ifmmode}
  43. \def\setboxz@h{\setbox\z@\hbox}
  44. \def\wdz@{\wd\z@}
  45. \def\boxz@{\box\z@}
  46. \def\setbox@ne{\setbox\@ne}
  47. \def\wd@ne{\wd\@ne}
  48. \def\relaxnext@{\let\next\relax}
  49. \def\iterate{\body\expandafter\iterate\else\fi}
  50. \long\def\@leftmark#1#2{#1}
  51. \long\def\@rightmark#1#2{#2}
  52. \long\def\@ifempty#1{%
  53.  \expandafter\ifx\@car#1@\@nil @\@empty
  54.   \expandafter\@leftmark\else\expandafter\@rightmark\fi}
  55. \long\def\@ifnotempty#1{\@ifempty{#1}{}}
  56. \def\err@#1#2{\iffirstchoice@
  57.   \edef\@tempc{#2}\errhelp\expandafter{\@tempc}%
  58.   \typeout{^^JAmS-TeX error:}%
  59.   \errmessage{#1}\fi}
  60. \def\nomath@env{\err@{\string\begin{\@currenvir}
  61.    allowed only in paragraph mode!}\@ehb}
  62. \def\Invalid@@{Invalid use of \string}
  63. \def\Invalid@#1{\def#1{\err@{\Invalid@@#1}\@eha}}
  64. \def\atdef@#1{\expandafter\def\csname\space @\string#1\endcsname}
  65. \begingroup \catcode`\@=\active
  66. \xdef @{\expandafter\noexpand\csname FN\string @\endcsname
  67.   \expandafter\noexpand\csname at\string @\endcsname}
  68. \endgroup
  69. \def\at@{\let\next@\at@@
  70.  \ifcat\noexpand\next a\else
  71.  \ifcat\noexpand\next0\else
  72.  \ifcat\noexpand\next\relax\else
  73.  \let\next@\at@@@\fi\fi\fi\next@}
  74. \def\at@@#1{\expandafter
  75.   \ifx\csname\space @\string#1\endcsname\relax
  76.     \DN@{\at@@@#1}%
  77.   \else
  78.     \DN@{\csname\space @\string#1\endcsname}%
  79.   \fi\next@}%
  80. \def\at@@@{\err@{\Invalid@@ @}{\the\athelp@}\char64\relax}
  81. \newhelp\athelp@
  82. {Only certain combinations beginning with @ make sense to me.^^J%
  83. I'll assume you wanted @@ for a printed @.}
  84. \atdef@ @{\char64\relax}% to define @@
  85. \def\makeatother{\catcode64\active}
  86. {\def\@makeother{\noexpand\@makeother\noexpand}
  87. \xdef\@sanitize{\@sanitize\@makeother\@}}
  88. {\def\do{\noexpand\do\noexpand}
  89. \xdef\dospecials{\dospecials\do\@}}
  90. \atdef@,{\RIfM@\mskip.1\thinmuskip\protect\else
  91.       \protect\nonmatherr@{@,}\protect\fi}
  92. \atdef@!{\RIfM@\mskip-.1\thinmuskip\protect\else
  93.       \protect\nonmatherr@{@!}\protect\fi}
  94. \let\ic@\/
  95. \def\/{\unskip\ic@}
  96. \def~{\unskip\nobreak\ \ignorespaces}
  97. \def\AmSTeX{\protect\AmS-\protect\TeX\@}
  98. \def\AmS{{\protect\the\textfont\tw@
  99.   A\kern-.1667em\lower.5ex\hbox{M}\kern-.125emS}}
  100. \def\nonmatherr@#1{\err@
  101.   {\string#1\space allowed only in math mode}\@ehd}
  102. \def\@lb{\RIfM@\lbrace\else$\m@th\lbrace$\fi}
  103. \def\@rb{\RIfM@\rbrace\else$\m@th\rbrace$\fi}
  104. \def\slash{\unskip/\penalty\exhyphenpenalty}
  105. \def\pr@m@s{\ifx'\next\DN@##1{\prim@s}\else\let\next@\egroup\fi\next@}
  106. \def\prime{{\null\prime@\null}}
  107. \mathchardef\prime@="0230
  108. \def\,{\RIfM@\mskip\thinmuskip\protect\else\kern.16667em\protect\fi}
  109. \def\!{\RIfM@\mskip-\thinmuskip\protect\else\kern-.16667em\protect\fi}
  110. \let\thinspace\,
  111. \let\negthinspace\!
  112. \def\medspace{\RIfM@\mskip\medmuskip
  113.   \protect\else\kern.222222em\protect\fi}
  114. \def\negmedspace{\RIfM@\mskip-\medmuskip
  115.   \protect\else\kern-.222222em\protect\fi}
  116. \def\;{\RIfM@\mskip\thickmuskip\protect\else\kern.27777em\protect\fi}
  117. \let\thickspace\;
  118. \def\negthickspace{\RIfM@\mskip-\thickmuskip\protect\else
  119.  \kern-.27777em\protect\fi}
  120. \def\And{\DOTSB\;\mathchar"3026 \;} %change%
  121. \def\implies{\DOTSB\;\Longrightarrow\;}
  122. \def\impliedby{\DOTSB\;\Longleftarrow\;}
  123. \def\frac{\protect\pfrac}
  124. \def\pfrac{\new@ifnextchar[\frac@{\frac@[\@empty]}}
  125. \def\frac@[#1]#2#3{\relax\ifx\@empty#1{#2\over#3}\else
  126.   {#2\above#1\relax#3}\fi}
  127. \def\fracwithdelims#1#2{\new@ifnextchar[{\fracwithdelims@#1#2}%
  128.   {\fracwithdelims@#1#2[\@empty]}}
  129. \def\fracwithdelims@#1#2[#3]#4#5{\relax
  130.   \ifx\@empty#3{#4\overwithdelims#1#2#5}\else
  131.   {#4\abovewithdelims#1#2#3\relax#5}\fi}
  132. \def\dfrac#1#2{{\displaystyle{#1\over#2}}}
  133. \def\tfrac#1#2{{\textstyle{#1\over#2}}}
  134. \def\binom#1#2{{#1\choose#2}}
  135. \def\dbinom#1#2{{\displaystyle{#1\choose#2}}}
  136. \def\tbinom#1#2{{\textstyle{#1\choose#2}}}
  137. \def\colon{\nobreak\mskip2mu\mathpunct{}\nonscript
  138.   \mkern-\thinmuskip{:}\mskip6muplus1mu\relax}
  139. \let\slimits@\displaylimits
  140. \mathchardef\coprod@="1360    \def\coprod{\DOTSB\coprod@\slimits@}
  141. \mathchardef\bigvee@="1357    \def\bigvee{\DOTSB\bigvee@\slimits@}
  142. \mathchardef\bigwedge@="1356  \def\bigwedge{\DOTSB\bigwedge@\slimits@}
  143. \mathchardef\biguplus@="1355  \def\biguplus{\DOTSB\biguplus@\slimits@}
  144. \mathchardef\bigcap@="1354    \def\bigcap{\DOTSB\bigcap@\slimits@}
  145. \mathchardef\bigcup@="1353    \def\bigcup{\DOTSB\bigcup@\slimits@}
  146. \mathchardef\prod@="1351      \def\prod{\DOTSB\prod@\slimits@}
  147. \mathchardef\sum@="1350       \def\sum{\DOTSB\sum@\slimits@}
  148. \mathchardef\bigotimes@="134E \def\bigotimes{\DOTSB\bigotimes@\slimits@}
  149. \mathchardef\bigoplus@="134C  \def\bigoplus{\DOTSB\bigoplus@\slimits@}
  150. \mathchardef\bigodot@="134A   \def\bigodot{\DOTSB\bigodot@\slimits@}
  151. \mathchardef\bigsqcup@="1346  \def\bigsqcup{\DOTSB\bigsqcup@\slimits@}
  152. \let\ilimits@\nolimits
  153. \def\int{\DOTSI\intop\ilimits@}
  154. \def\oint{\DOTSI\ointop\ilimits@}
  155. \def\intic@{%
  156.   \mathchoice{\hskip.5em}{\hskip.4em}{\hskip.4em}{\hskip.4em}}
  157. \def\negintic@{\mathchoice
  158.  {\hskip-.5em}{\hskip-.4em}{\hskip-.4em}{\hskip-.4em}}
  159. \def\intkern@{\mathchoice{\!\!\!}{\!\!}{\!\!}{\!\!}}
  160. \def\intdots@{\mathchoice{\@cdots}
  161.  {{\cdotp}\mkern1.5mu{\cdotp}\mkern1.5mu{\cdotp}}
  162.  {{\cdotp}\mkern1mu{\cdotp}\mkern1mu{\cdotp}}
  163.  {{\cdotp}\mkern1mu{\cdotp}\mkern1mu{\cdotp}}}
  164. \newcount\intno@
  165. \def\iint{\DOTSI\intno@\tw@\FN@\ints@}
  166. \def\iiint{\DOTSI\intno@\thr@@\FN@\ints@}
  167. \def\iiiint{\DOTSI\intno@4 \FN@\ints@}
  168. \def\idotsint{\DOTSI\intno@\z@\FN@\ints@}
  169. \def\ints@{\findlimits@\ints@@}
  170. \newif\iflimtoken@
  171. \newif\iflimits@
  172. \def\findlimits@{\limtoken@true\ifx\next\limits\limits@true
  173.  \else\ifx\next\nolimits\limits@false\else
  174.  \limtoken@false\ifx\ilimits@\nolimits\limits@false\else
  175.  \ifinner\limits@false\else\limits@true\fi\fi\fi\fi}
  176. \def\multint@{\int\ifnum\intno@=\z@\intdots@
  177.  \else\intkern@\fi
  178.  \ifnum\intno@>\tw@\int\intkern@\fi
  179.  \ifnum\intno@>\thr@@\int\intkern@\fi
  180.  \int}
  181. \def\multintlimits@{\intop\ifnum\intno@=\z@\intdots@
  182.   \else\intkern@\fi
  183.  \ifnum\intno@>\tw@\intop\intkern@\fi
  184.  \ifnum\intno@>\thr@@\intop\intkern@\fi\intop}
  185. \def\ints@@{\iflimtoken@
  186.  \def\ints@@@{%
  187.    \iflimits@\negintic@\mathop{\intic@\multintlimits@}\limits
  188.   \else\multint@\nolimits\fi
  189.   \@gobble} %4
  190.  \else
  191.  \def\ints@@@{\iflimits@\negintic@
  192.   \mathop{\intic@\multintlimits@}\limits\else
  193.   \multint@\nolimits\fi}\fi\ints@@@}
  194. \let\nlimits@\displaylimits
  195. \def\nolimits@{\relaxnext@
  196.  \DN@{\ifx\next\limits\DN@\limits{\nolimits}\else
  197.   \let\next@\nolimits\fi\next@}%
  198.  \FN@\next@}
  199. \def\newmcodes@{\mathcode`\'39\mathcode`\*42\mathcode`\."613A%
  200.  \mathcode`\-45\mathcode`\/47\mathcode`\:"603A\relax}
  201. \def\operatorname#1{\mathop{\newmcodes@\kern\z@
  202.  \operator@font#1}\nolimits@}
  203. \def\operatornamewithlimits#1{\mathop{\newmcodes@\kern\z@
  204.  \operator@font#1}\nlimits@}
  205. \def\qopname@#1{\mathop{\operator@font#1}\nolimits@}
  206. \def\qopnamewl@#1{\mathop{\operator@font#1}\nlimits@}
  207. \def\arccos{\qopname@{arccos}}
  208. \def\arcsin{\qopname@{arcsin}}
  209. \def\arctan{\qopname@{arctan}}
  210. \def\arg{\qopname@{arg}}
  211. \def\cos{\qopname@{cos}}
  212. \def\cosh{\qopname@{cosh}}
  213. \def\cot{\qopname@{cot}}
  214. \def\coth{\qopname@{coth}}
  215. \def\csc{\qopname@{csc}}
  216. \def\deg{\qopname@{deg}}
  217. \def\det{\qopnamewl@{det}}
  218. \def\dim{\qopname@{dim}}
  219. \def\exp{\qopname@{exp}}
  220. \def\gcd{\qopnamewl@{gcd}}
  221. \def\hom{\qopname@{hom}}
  222. \def\inf{\qopnamewl@{inf}}
  223. \def\injlim{\qopnamewl@{inj\,lim}}
  224. \def\ker{\qopname@{ker}}
  225. \def\lg{\qopname@{lg}}
  226. \def\lim{\qopnamewl@{lim}}
  227. \def\liminf{\qopnamewl@{lim\,inf}}
  228. \def\limsup{\qopnamewl@{lim\,sup}}
  229. \def\ln{\qopname@{ln}}
  230. \def\log{\qopname@{log}}
  231. \def\max{\qopnamewl@{max}}
  232. \def\min{\qopnamewl@{min}}
  233. \def\Pr{\qopnamewl@{Pr}}
  234. \def\projlim{\qopnamewl@{proj\,lim}}
  235. \def\sec{\qopname@{sec}}
  236. \def\sin{\qopname@{sin}}
  237. \def\sinh{\qopname@{sinh}}
  238. \def\sup{\qopnamewl@{sup}}
  239. \def\tan{\qopname@{tan}}
  240. \def\tanh{\qopname@{tanh}}
  241. \def\varlim@#1#2{\mathop{\vtop{\ialign{##\crcr
  242.  \hfil$#1\m@th\operator@font lim$\hfil\crcr
  243.  \noalign{\nointerlineskip}#2#1\crcr
  244.  \noalign{\nointerlineskip\kern-\ex@}\crcr}}}}
  245. \def\varinjlim{\mathpalette\varlim@\rightarrowfill@}
  246. \def\varprojlim{\mathpalette\varlim@\leftarrowfill@}
  247. \def\varliminf{\mathpalette\varliminf@{}}
  248. \def\varliminf@#1{\mathop{\underline{\vrule\@depth.2\ex@\@width\z@
  249.    \hbox{$#1\m@th\operator@font lim$}}}}
  250. \def\varlimsup{\mathpalette\varlimsup@{}}
  251. \def\varlimsup@#1{\mathop{\overline
  252.   {\hbox{$#1\m@th\operator@font lim$}}}}
  253. \newtoks\hashtoks@
  254. \hashtoks@{#}
  255. \def\pmatrix{\left(\matrix}
  256. \def\endpmatrix{\endmatrix\right)}
  257. \def\bmatrix{\left[\matrix}
  258. \def\endbmatrix{\endmatrix\right]}
  259. \def\vmatrix{\left|\matrix}
  260. \def\endvmatrix{\endmatrix\right|}
  261. \def\Vmatrix{\left\|\matrix}
  262. \def\endVmatrix{\endmatrix\right\|}
  263. \let\hdots\@ldots
  264. \def\hdotsfor#1{\if\noexpand#1[\expandafter\shdots@for\else
  265.                 \hdots@for\@ne{#1}\fi}
  266. \def\shdots@for#1]{\hdots@for{#1}}
  267. \def\hdots@for#1#2{\multicolumn{#2}c%
  268.   {\m@th\mkern-#1\dotsspace@
  269.    \xleaders\hbox{$\m@th\mkern#1\dotsspace@.\mkern#1\dotsspace@$}%
  270.            \hfill
  271.    \mkern-#1\dotsspace@}%
  272. \def\numberwithin#1#2{\@ifundefined{c@#1}{\@nocnterrr}{%
  273.   \@ifundefined{c@#2}{\@nocnterr}{%
  274.   \@addtoreset{#1}{#2}%
  275.   \toks@\expandafter\expandafter\expandafter{\csname the#1\endcsname}%
  276.   \expandafter\xdef\csname the#1\endcsname
  277.     {\expandafter\noexpand\csname the#2\endcsname
  278.      .\the\toks@}}}}
  279. \newif\ifctagsplit@
  280. \def\bmod{\mskip-\medmuskip\mkern5mu\mathbin
  281.  {\operator@font mod}\penalty900
  282.  \mkern5mu\mskip-\medmuskip}
  283. \def\pmod#1{\allowbreak\ifinner\mkern8mu\else\mkern18mu\fi
  284.  ({\operator@font mod}\,\,#1)}
  285. \def\pod#1{\allowbreak\ifinner\mkern8mu\else\mkern18mu\fi(#1)}
  286. \def\mod#1{\allowbreak\ifinner\mkern12mu
  287.   \else\mkern18mu\fi{\operator@font mod}\,\,#1}
  288. \def\cfrac#1#2{\dfrac{\strut#1}{#2}\kern-\nulldelimiterspace}
  289. \def\lcfrac#1{\cfrac{#1\hfill}}
  290. \def\rcfrac#1{\cfrac{\hfill#1}}
  291. \def\overset#1#2{\binrel@{#2}%
  292.  \binrel@@{\mathop{\kern\z@#2}\limits^{#1}}}
  293. \def\underset#1#2{\binrel@{#2}%
  294.  \binrel@@{\mathop{\kern\z@#2}\limits_{#1}}}
  295. \def\sideset#1#2#3{%
  296.  \setbox@ne\hbox{$\displaystyle{\vphantom{#3}}#1{#3}\m@th$}%
  297.  \setbox\tw@\hbox{$\displaystyle{#3}#2\m@th$}%
  298.  \hskip\wd@ne\hskip-\wd\tw@\mathop{\hskip\wd\tw@\hskip-\wd@ne
  299.   {\vphantom{#3}}#1{#3}#2}}
  300. \def\rightarrowfill@#1{\m@th\setboxz@h{$#1-$}\ht\z@\z@
  301.   $#1\copy\z@\mkern-6mu\cleaders
  302.   \hbox{$#1\mkern-2mu\box\z@\mkern-2mu$}\hfill
  303.   \mkern-6mu\mathord\rightarrow$}
  304. \def\leftarrowfill@#1{\m@th\setboxz@h{$#1-$}\ht\z@\z@
  305.   $#1\mathord\leftarrow\mkern-6mu\cleaders
  306.   \hbox{$#1\mkern-2mu\copy\z@\mkern-2mu$}\hfill
  307.   \mkern-6mu\box\z@$}
  308. \def\leftrightarrowfill@#1{\m@th\setboxz@h{$#1-$}\ht\z@\z@
  309.   $#1\mathord\leftarrow\mkern-6mu\cleaders
  310.   \hbox{$#1\mkern-2mu\box\z@\mkern-2mu$}\hfill
  311.   \mkern-6mu\mathord\rightarrow$}
  312. \def\overarrow@#1#2#3{\vbox{\ialign{##\crcr#1#2\crcr
  313.  \noalign{\kern-\ex@\nointerlineskip}$\m@th\hfil#2#3\hfil$\crcr}}}
  314. \def\overrightarrow{\mathpalette{\overarrow@\rightarrowfill@}}
  315. \def\overleftarrow{\mathpalette{\overarrow@\leftarrowfill@}}
  316. \def\overleftrightarrow{\mathpalette{\overarrow@\leftrightarrowfill@}}
  317. \def\underarrow@#1#2#3{%
  318.  \vtop{\ialign{##\crcr$\m@th\hfil#2#3\hfil$\crcr
  319.  \noalign{\nointerlineskip\kern-.5\ex@}#1#2\crcr}}}
  320. \def\underrightarrow{\mathpalette{\underarrow@\rightarrowfill@}}
  321. \def\underleftarrow{\mathpalette{\underarrow@\leftarrowfill@}}
  322. \def\underleftrightarrow{\mathpalette{\underarrow@\leftrightarrowfill@}}
  323. \@ifundefined{amscd.sty}{%
  324. \atdef@>#1>#2>{%
  325.   \global\bigaw@\minaw@
  326.   \setboxz@h{$\m@th\scriptstyle\;{#1}\;\;$}%
  327.   \ifdim\wdz@>\bigaw@ \global\bigaw@\wdz@ \fi
  328.   \@ifnotempty{#2}{\setbox@ne\hbox{$\m@th\scriptstyle\;{#2}\;\;$}%
  329.     \ifdim\wd@ne>\bigaw@ \global\bigaw@\wd@ne \fi}%
  330.    \mathrel{\mathop{\hbox to\bigaw@{\rightarrowfill@\displaystyle}}%
  331.      \limits^{#1}\@ifnotempty{#2}{_{#2}}}%
  332. }% end of @>>>
  333. \atdef@<#1<#2<{%
  334.   \global\bigaw@\minaw@
  335.   \setboxz@h{$\m@th\scriptstyle\;\;{#1}\;$}%
  336.   \ifdim\wdz@>\bigaw@ \global\bigaw@\wdz@ \fi
  337.   \@ifnotempty{#2}{\setbox@ne\hbox{$\m@th\scriptstyle\;\;{#2}\;$}%
  338.     \ifdim\wd@ne>\bigaw@ \global\bigaw@\wd@ne \fi}%
  339.   \mathrel{\mathop{\hbox to\bigaw@{\leftarrowfill@\displaystyle}}%
  340.       \limits^{#1}\@ifnotempty{#2}{_{#2}}}%
  341. }% end of @<<<
  342. }{}% end of \@ifundefined
  343. \begingroup \catcode`\~=\active \lccode`\~=`\@
  344. \lowercase{%
  345.   \global\atdef@)#1)#2){~>#1>#2>}
  346.   \global\atdef@(#1(#2({~<#1<#2<}
  347. }% end lowercase
  348. \endgroup
  349. \@ifundefined{minaw@}{\newdimen\minaw@}{}
  350. \minaw@11.11128\ex@
  351. \@ifundefined{bigaw@}{\newdimen\bigaw@}{}
  352. \let\ifgtest@\iffalse                              % initial value
  353. \def\gtest@true{\global\let\ifgtest@\iftrue}
  354. \def\gtest@false{\global\let\ifgtest@\iffalse}
  355. \let\DOTSI\relax
  356. \let\DOTSB\relax
  357. \let\DOTSX\relax
  358. {\uccode`7=`\\ \uccode`8=`m \uccode`9=`a \uccode`0=`t \uccode`!=`h
  359.  \uppercase{%
  360.   \gdef\math@#1#2#3#4#5#6\math@{\gtest@false\ifx 7#1\ifx 8#2%
  361.   \ifx 9#3\ifx 0#4\ifx !#5\xdef\meaning@{#6}\gtest@true
  362.   \fi\fi\fi\fi\fi}}}
  363. {\uccode`7=`c \uccode`8=`h \uccode`9=`\"
  364.  \uppercase{\gdef\mathch@#1#2#3#4#5#6\mathch@{\gtest@false
  365.   \ifx 7#1\ifx 8#2\ifx 9#5\gtest@true\xdef\meaning@{9#6}\fi\fi\fi}}}
  366. \newcount\classnum@
  367. \def\getmathch@#1.#2\getmathch@{\classnum@#1 \divide\classnum@4096
  368.  \ifcase\number\classnum@\or\or\gdef\thedots@{\dotsb@}\or
  369.  \gdef\thedots@{\dotsb@}\fi}
  370. {\uccode`4=`b \uccode`5=`i \uccode`6=`n
  371.  \uppercase{\gdef\mathbin@#1#2#3{\relaxnext@
  372.   \def\nextii@##1\mathbin@{\ifx\@sptoken\next\gtest@true\fi}%
  373.   \gtest@false\DN@##1\mathbin@{}%
  374.  \ifx 4#1\ifx 5#2\ifx 6#3\DN@{\FN@\nextii@}\fi\fi\fi\next@}}}
  375. {\uccode`4=`r \uccode`5=`e \uccode`6=`l
  376.  \uppercase{\gdef\mathrel@#1#2#3{\relaxnext@
  377.   \def\nextii@##1\mathrel@{\ifx\@sptoken\next\gtest@true\fi}%
  378.  \gtest@false\DN@##1\mathrel@{}%
  379.  \ifx 4#1\ifx 5#2\ifx 6#3\DN@{\FN@\nextii@}\fi\fi\fi\next@}}}
  380. {\uccode`5=`m \uccode`6=`a \uccode`7=`c
  381.  \uppercase{\gdef\macro@#1#2#3#4\macro@{\gtest@false
  382.   \ifx 5#1\ifx 6#2\ifx 7#3\gtest@true
  383.   \xdef\meaning@{\macro@@#4\macro@@}\fi\fi\fi}}}
  384. \def\macro@@#1->#2\macro@@{#2}
  385. \newcount\DOTSCASE@
  386. {\uccode`6=`\\ \uccode`7=`D \uccode`8=`O \uccode`9=`T \uccode`0=`S
  387.  \uppercase{\gdef\DOTS@#1#2#3#4#5{\gtest@false\DN@##1\DOTS@{}%
  388.   \ifx 6#1\ifx 7#2\ifx 8#3\ifx 9#4\ifx 0#5\let\next@\DOTS@@
  389.   \fi\fi\fi\fi\fi
  390.   \next@}}}
  391. {\uccode`3=`B \uccode`4=`I \uccode`5=`X
  392.  \uppercase{\gdef\DOTS@@#1{\relaxnext@
  393.   \def\nextii@##1\DOTS@{\ifx\@sptoken\next\gtest@true\fi}%
  394.   \DN@{\FN@\nextii@}%
  395.   \ifx 3#1\global\DOTSCASE@\z@\else
  396.   \ifx 4#1\global\DOTSCASE@\@ne\else
  397.   \ifx 5#1\global\DOTSCASE@\tw@\else\DN@##1\DOTS@{}%
  398.   \fi\fi\fi\next@}}}
  399. {\uccode`5=`\\ \uccode`6=`n \uccode`7=`o \uccode`8=`t
  400.  \uppercase{\gdef\not@#1#2#3#4{\relaxnext@
  401.   \def\nextii@##1\not@{\ifx\@sptoken\next\gtest@true\fi}%
  402.  \gtest@false\DN@##1\not@{}%
  403.  \ifx 5#1\ifx 6#2\ifx 7#3\ifx 8#4\DN@{\FN@\nextii@}\fi\fi\fi
  404.  \fi\next@}}}
  405. \def\keybin@{\gtest@true
  406.  \ifx\next+\else\ifx\next=\else\ifx\next<\else\ifx\next>\else
  407.  \ifx\next-\else
  408.  \ifx\next*\else\ifx\next:\else\gtest@false\fi\fi\fi\fi\fi\fi\fi}
  409. \def\dots{\protect\pdots}
  410. \def\pdots{\RIfM@\expandafter\mdots@\else\expandafter\tdots@\fi}
  411. \def\tdots@{\unskip\relaxnext@
  412.  \DN@{$\m@th\@ldots\,
  413.    \ifx\next,\,$\else\ifx\next.\,$\else\ifx\next;\,$\else
  414.    \ifx\next:\,$\else
  415.    \ifx\next?\,$\else\ifx\next!\,$\else$ \fi\fi\fi\fi\fi\fi}%
  416.  \ \FN@\next@}
  417. \def\mdots@{\FN@\mdots@@}
  418. \def\mdots@@{\gdef\thedots@{\dotso@}%
  419.  \ifx\next\boldsymbol\gdef\thedots@\boldsymbol{\boldsymboldots@}\else
  420.  \ifx,\next\gdef\thedots@{\dotsc}%
  421.  \else\ifx\not\next\gdef\thedots@{\dotsb@}%
  422.  \else\keybin@
  423.  \ifgtest@\gdef\thedots@{\dotsb@}%
  424.  \else\xdef\meaning@{\meaning\next..........}\xdef\meaning@@{\meaning@}%
  425.   \expandafter\math@\meaning@\math@
  426.   \ifgtest@
  427.    \expandafter\mathch@\meaning@\mathch@
  428.    \ifgtest@\expandafter\getmathch@\meaning@\getmathch@\fi
  429.   \else\expandafter\macro@\meaning@@\macro@
  430.   \ifgtest@
  431.    \expandafter\not@\meaning@\not@\ifgtest@\gdef\thedots@{\dotsb@}%
  432.   \else\expandafter\DOTS@\meaning@\DOTS@
  433.   \ifgtest@
  434.    \ifcase\number\DOTSCASE@\gdef\thedots@{\dotsb@}%
  435.     \or\gdef\thedots@{\dotsi}\else\fi
  436.   \else\expandafter\math@\meaning@\math@
  437.   \ifgtest@\expandafter\mathbin@\meaning@\mathbin@
  438.   \ifgtest@\gdef\thedots@{\dotsb@}%
  439.   \else\expandafter\mathrel@\meaning@\mathrel@
  440.   \ifgtest@\gdef\thedots@{\dotsb@}%
  441.   \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
  442.  \thedots@}
  443. \def\boldsymboldots@#1{\bold@true\let\next=#1\let\delayed@=#1\mdots@@
  444.  \boldsymbol#1\bold@false}
  445. \def\@cdots{\mathinner{\cdotp\cdotp\cdotp}}
  446. \def\dotsi{\!\@cdots}
  447. \let\dotsb@\@cdots
  448. \def\rightdelim@{\gtest@true
  449.  \ifx\next)\else
  450.  \ifx\next]\else
  451.  \ifx\next\rbrack\else
  452.  \ifx\next\}\else
  453.  \ifx\next\rbrace\else
  454.  \ifx\next\rangle\else
  455.  \ifx\next\rceil\else
  456.  \ifx\next\rfloor\else
  457.  \ifx\next\rgroup\else
  458.  \ifx\next\rmoustache\else
  459.  \ifx\next\right\else
  460.  \ifx\next\bigr\else
  461.  \ifx\next\biggr\else
  462.  \ifx\next\Bigr\else
  463.  \ifx\next\Biggr\else\gtest@false
  464.  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
  465. \def\extra@{%
  466.  \rightdelim@\ifgtest@
  467.  \else\ifx\next$\gtest@true
  468.  \else\xdef\meaning@{\meaning\next..........}%
  469.  \expandafter\macro@\meaning@\macro@\ifgtest@
  470.  \expandafter\DOTS@\meaning@\DOTS@
  471.  \ifgtest@
  472.  \ifnum\DOTSCASE@=\tw@\gtest@true\else\gtest@false
  473.  \fi\fi\fi\fi\fi}
  474. \newif\ifbold@
  475. \def\dotso@{\relaxnext@
  476.  \ifbold@
  477.   \let\next\delayed@
  478.   \def\nextii@{\extra@\@ldots\ifgtest@\,\fi}%
  479.  \else
  480.   \def\nextii@{\DN@{\extra@\@ldots\ifgtest@\,\fi}\FN@\next@}%
  481.  \nextii@}
  482. \def\extrap@#1{%
  483.  \DN@{#1\,}%
  484.  \ifx\next,\else
  485.  \ifx\next;\else
  486.  \ifx\next.\else\extra@
  487.  \ifgtest@\else
  488.  \let\next@#1\fi\fi\fi\fi\next@}
  489. \def\pldots{\DN@{\extrap@\@ldots}\FN@\next@}
  490. \def\cdots{\protect\pcdots}
  491. \def\pcdots{\DN@{\extrap@\@cdots}\FN@\next@}
  492. \let\dotso\ldots
  493. \let\dotsb\cdots
  494. \let\dotsm\dotsb
  495. \def\dotsc{\protect\pdotsc}
  496. \def\pdotsc{\relaxnext@
  497.  \DN@{\ifx\next;\@ldots\,\else
  498.   \ifx\next.\@ldots\,\else\extra@\@ldots
  499.   \ifgtest@\,\fi\fi\fi}%
  500.  \FN@\next@}
  501. \def\cdot{\mathchar"2201 }
  502. \def\longrightarrow{\DOTSB\relbar\joinrel\rightarrow}
  503. \def\Longrightarrow{\DOTSB\Relbar\joinrel\Rightarrow}
  504. \def\longleftarrow{\DOTSB\leftarrow\joinrel\relbar}
  505. \def\Longleftarrow{\DOTSB\Leftarrow\joinrel\Relbar}
  506. \def\longleftrightarrow{\DOTSB\leftarrow\joinrel\rightarrow}
  507. \def\Longleftrightarrow{\DOTSB\Leftarrow\joinrel\Rightarrow}
  508. \def\mapsto{\DOTSB\mapstochar\rightarrow}
  509. \def\longmapsto{\DOTSB\mapstochar\longrightarrow}
  510. \def\hookrightarrow{\DOTSB\lhook\joinrel\rightarrow}
  511. \def\hookleftarrow{\DOTSB\leftarrow\joinrel\rhook}
  512. \def\doteq{\DOTSB\buildrel\textstyle.\over=}
  513. \def\iff{\DOTSB\;\Longleftrightarrow\;}
  514. \def\dddot#1{{\mathop{#1}\limits^{\vbox to-1.4\ex@{\kern-\tw@\ex@
  515.  \hbox{\series m\normalshape...}\vss}}}}
  516. \def\ddddot#1{{\mathop{#1}\limits^{\vbox to-1.4\ex@{\kern-\tw@\ex@
  517.  \hbox{\series m\normalshape....}\vss}}}}
  518. \def\sphat{^{\mathchoice{}{}%
  519.  {\,\,\smash[b]{\hbox{\lower4\ex@\hbox{$\m@th\widehat{\null}$}}}}%
  520.  {\,\smash[b]{\hbox{\lower3\ex@\hbox{$\m@th\hat{\null}$}}}}}}
  521. \def\spcheck{^\vee}
  522. \def\sptilde{^\sim}
  523. \def\spdot{^{\hbox{\raise\ex@\hbox{\series m\normalshape.}}}}
  524. \def\spddot{^{\hbox{\raise\ex@\hbox{\series m\normalshape..}}}}
  525. \def\spdddot{^{\hbox{\raise\ex@\hbox{\series m\normalshape...}}}}
  526. \def\spbreve{^{\!\smash[b]{\hbox{\lower4\ex@\hbox{\u{}}}}}}
  527. \def\oldnos#1{\RIfM@{\mathcode`\,"013B \mathgroup\@ne#1}\else
  528.  \leavevmode\hbox{$\m@th\mathcode`\,"013B \mathgroup\@ne#1$}\fi}
  529. \mathchardef\Gamma="0000
  530. \mathchardef\Delta="0001
  531. \mathchardef\Theta="0002
  532. \mathchardef\Lambda="0003
  533. \mathchardef\Xi="0004
  534. \mathchardef\Pi="0005
  535. \mathchardef\Sigma="0006
  536. \mathchardef\Upsilon="0007
  537. \mathchardef\Phi="0008
  538. \mathchardef\Psi="0009
  539. \mathchardef\Omega="000A
  540. \mathchardef\varGamma="0100
  541. \mathchardef\varDelta="0101
  542. \mathchardef\varTheta="0102
  543. \mathchardef\varLambda="0103
  544. \mathchardef\varXi="0104
  545. \mathchardef\varPi="0105
  546. \mathchardef\varSigma="0106
  547. \mathchardef\varUpsilon="0107
  548. \mathchardef\varPhi="0108
  549. \mathchardef\varPsi="0109
  550. \mathchardef\varOmega="010A
  551. \def\accentclass@{7}
  552. \def\noaccents@{\def\accentclass@{0}}
  553. \def\makeacc@#1#2{\def#1{\mathaccent"\accentclass@#2 }}
  554. \makeacc@\hat{05E}
  555. \makeacc@\check{014}
  556. \makeacc@\tilde{07E}
  557. \makeacc@\acute{013}
  558. \makeacc@\grave{012}
  559. \makeacc@\dot{05F}
  560. \makeacc@\ddot{07F}
  561. \makeacc@\breve{015}
  562. \makeacc@\bar{016}
  563. \def\vec{\mathaccent"017E }
  564. \newcount\skewcharcount@
  565. \newcount\familycount@
  566. \def\theskewchar@{\familycount@\@ne
  567.  \global\skewcharcount@\the\skewchar\textfont\@ne
  568.  \ifnum\mathgroup>\m@ne\ifnum\mathgroup<16
  569.   \global\familycount@\the\mathgroup\relax
  570.   \global\skewcharcount@\the\skewchar\textfont\the\mathgroup\relax\fi\fi
  571.  \ifnum\skewcharcount@>\m@ne
  572.   \ifnum\skewcharcount@<128
  573.   \multiply\familycount@256
  574.   \global\advance\skewcharcount@\familycount@
  575.   \global\advance\skewcharcount@28672
  576.   \mathchar\skewcharcount@\else
  577.   \global\skewcharcount@\m@ne\fi\else
  578.  \global\skewcharcount@\m@ne\fi}
  579. \newcount\pointcount@
  580. \def\getpoints@#1.#2\getpoints@{\pointcount@#1 }
  581. \newdimen\accentdimen@
  582. \newcount\accentmu@
  583. \def\dimentomu@{\multiply\accentdimen@ 100
  584.  \expandafter\getpoints@\the\accentdimen@\getpoints@
  585.  \multiply\pointcount@18
  586.  \divide\pointcount@\@m
  587.  \global\accentmu@\pointcount@}
  588. \def\Makeacc@#1#2{\def#1{\RIfM@\DN@{\mathaccent@
  589.  {"\accentclass@#2 }}\else\DN@{\nonmatherr@{#1}}\fi\next@}}
  590. \def\mathaccent@#1#2{\ifnum\mathgroup=\m@ne\xdef\thefam@{1}\else
  591.  \xdef\thefam@{\the\mathgroup}\fi
  592.  \accentdimen@\z@
  593.  \setboxz@h{\unbracefonts@$\m@th\mathgroup\thefam@\relax#2$}%
  594.  \ifdim\accentdimen@=\z@\DN@{\mathaccent#1{#2}}%
  595.   \setbox@ne\hbox{\unbracefonts@
  596.     $\m@th\mathgroup\thefam@\relax#2\theskewchar@$}
  597.   \setbox\tw@\hbox{$\m@th\ifnum\skewcharcount@=\m@ne\else
  598.    \mathchar\skewcharcount@\fi$}%
  599.   \global\accentdimen@\wd@ne\global\advance\accentdimen@-\wdz@
  600.   \global\advance\accentdimen@-\wd\tw@
  601.   \global\multiply\accentdimen@\tw@
  602.   \dimentomu@\global\advance\accentmu@\@ne
  603.  \else\DN@{{\mathaccent#1{#2\mkern\accentmu@ mu}%
  604.     \mkern-\accentmu@ mu}{}}\fi
  605.  \next@}\Makeacc@\Hat{05E}
  606. \Makeacc@\Check{014}
  607. \Makeacc@\Tilde{07E}
  608. \Makeacc@\Acute{013}
  609. \Makeacc@\Grave{012}
  610. \Makeacc@\Dot{05F}
  611. \Makeacc@\Ddot{07F}
  612. \Makeacc@\Breve{015}
  613. \Makeacc@\Bar{016}
  614. \def\Vec{\RIfM@\DN@{\mathaccent@{"017E }}\else
  615.  \DN@{\nonmatherr@\Vec}\fi\next@}
  616. \def\accentedsymbol#1#2{\expandafter\newbox\csname\expandafter
  617.   \@gobble\string#1@box\endcsname
  618.  \expandafter\setbox\csname\expandafter\@gobble
  619.   \string#1@box\endcsname\hbox{$\m@th#2$}\define
  620.   #1{\expandafter\copy\csname\expandafter\@gobble\string#1@box
  621.     \endcsname{}}}
  622. \def\@@sqrt#1{\radical"270370 {#1}}
  623. \def\underline#1{\RIfM@\@@underline{#1}%
  624.   \else $\m@th\@@underline{\hbox{#1}}$\fi}
  625. \let\@@overline\overline
  626. \def\overline#1{\@@overline{#1}}
  627. \Invalid@\leftroot
  628. \Invalid@\uproot
  629. \newcount\uproot@
  630. \newcount\leftroot@
  631. \def\root{\relaxnext@
  632.   \DN@{\ifx\next\uproot\let\next@\nextii@\else
  633.    \ifx\next\leftroot\let\next@\nextiii@\else
  634.    \let\next@\plainroot@\fi\fi\next@}%
  635.   \def\nextii@\uproot##1{\uproot@##1\relax\FN@\nextiv@}%
  636.   \def\nextiv@{\ifx\next\@sptoken\DN@. {\FN@\nextv@}\else
  637.    \DN@.{\FN@\nextv@}\fi\next@.}%
  638.   \def\nextv@{\ifx\next\leftroot\let\next@\nextvi@\else
  639.    \let\next@\plainroot@\fi\next@}%
  640.   \def\nextvi@\leftroot##1{\leftroot@##1\relax\plainroot@}%
  641.    \def\nextiii@\leftroot##1{\leftroot@##1\relax\FN@\nextvii@}%
  642.   \def\nextvii@{\ifx\next\@sptoken
  643.    \DN@. {\FN@\nextviii@}\else
  644.    \DN@.{\FN@\nextviii@}\fi\next@.}%
  645.   \def\nextviii@{\ifx\next\uproot\let\next@\nextix@\else
  646.    \let\next@\plainroot@\fi\next@}%
  647.   \def\nextix@\uproot##1{\uproot@##1\relax\plainroot@}%
  648.   \bgroup\uproot@\z@\leftroot@\z@\FN@\next@}
  649. \def\plainroot@#1\of#2{\setbox\rootbox\hbox{%
  650.  $\m@th\scriptscriptstyle{#1}$}%
  651.  \mathchoice{\r@@t\displaystyle{#2}}{\r@@t\textstyle{#2}}
  652.  {\r@@t\scriptstyle{#2}}{\r@@t\scriptscriptstyle{#2}}\egroup}
  653. \def\r@@t#1#2{\setboxz@h{$\m@th#1\@@sqrt{#2}$}%
  654.  \dimen@\ht\z@\advance\dimen@-\dp\z@
  655.  \setbox@ne\hbox{$\m@th#1\mskip\uproot@ mu$}%
  656.  \advance\dimen@ by1.667\wd@ne
  657.  \mkern-\leftroot@ mu\mkern5mu\raise.6\dimen@\copy\rootbox
  658.  \mkern-10mu\mkern\leftroot@ mu\boxz@}
  659. \def\boxed#1{\fbox{\m@th$\displaystyle#1$}}
  660. \begingroup
  661.  \def\do{\noexpand\do\noexpand}
  662.  \xdef\@preamblecmds{\@preamblecmds
  663.                      \do \numberwithin
  664.                      \do \UseAMSsymbols
  665.                      \do \newsymbol}
  666. \endgroup
  667. \def\new@ifnextchar#1#2#3{%
  668.   \let\@tempe #1\def\@tempa{#2}\def\@tempb{#3}\futurelet
  669.     \@tempc\new@ifnch}
  670. \def\new@ifnch{\ifx\@tempc \@tempe \let\@tempd\@tempa
  671.              \else\let\@tempd\@tempb\fi\@tempd}
  672. \def\new@ifstar#1#2{\new@ifnextchar *{\def\@tempa*{#1}\@tempa}{#2}}
  673. \def\setb@ck{\iffirstchoice@\global\advance\c@equation\m@ne\fi}
  674. \newcount\dspbrk@lvl
  675. \dspbrk@lvl=-1
  676. \interdisplaylinepenalty\@M
  677. \def\allowdisplaybreaks{%
  678.   \new@ifnextchar [\allowdspbrks@{\allowdspbrks@[4]}}
  679. \def\allowdspbrks@[#1]{%
  680.   \interdisplaylinepenalty\getdsp@pen{#1}}
  681. \def\getdsp@pen#1{%
  682.   \ifcase #1\relax \@M
  683.     \or 9999
  684.     \or 6999
  685.     \or 2999
  686.     \or \z@\fi}
  687. \Invalid@\displaybreak
  688. \def\displaybreak@{%
  689.   \def\displaybreak{\new@ifnextchar[\dspbrk@{\dspbrk@[4]}}}
  690. \def\dspbrk@[#1]{\global\dspbrk@lvl #1\relax}
  691. \def\math@cr{{\ifnum0=`}\fi
  692.   \new@ifstar{\global\@eqpen\@M\math@cr@}%
  693.           {\global\@eqpen
  694.              \ifnum\dspbrk@lvl <\z@ \interdisplaylinepenalty
  695.               \else -\@getpen\dspbrk@lvl \fi
  696.            \math@cr@}}
  697. \def\math@cr@{\new@ifnextchar[\math@cr@@{\math@cr@@[\z@]}}
  698. \def\math@cr@@[#1]{\ifnum0=`{\fi}\math@cr@@@
  699.   \noalign{\vskip#1\relax}}
  700. \def\Let@{\let\\\math@cr}
  701. \def\restore@math@cr{\def\math@cr@@@{\cr}}
  702. \restore@math@cr
  703. \Invalid@\intertext
  704. \def\intertext@{\def\intertext##1{\noalign{%
  705.   \penalty\postdisplaypenalty\vskip\belowdisplayskip
  706.   \vbox{\normalbaselines\noindent##1}%
  707.   \penalty\predisplaypenalty\vskip\abovedisplayskip}}}
  708. \newhelp\tag@help
  709.   {tag cannot be used at this point.\space
  710.    If you don't understand why^^Jyou should consult
  711.    the documentation.^^JBut don't worry: just continue, and I'll
  712.    forget what happened.}
  713. \def\gobble@tag{\new@ifstar\@gobble\@gobble}
  714. \def\invalid@tag#1{\err@{#1}{\the\tag@help}\gobble@tag}
  715. \def\dft@tag{\invalid@tag{\string\tag\space not allowed here}}
  716. \def\default@tag{\let\tag\dft@tag}
  717. \default@tag
  718. \def\maketag@@{\new@ifstar\maketag@@@\tagform@}
  719. \def\maketag@@@#1{\hbox{\m@th\series m\normalshape#1}}
  720. \def\tagform@#1{\maketag@@@{(\ignorespaces#1\unskip)}}
  721. \def\thetag{\leavevmode\tagform@}
  722. \def\make@df@tag{\new@ifstar\make@df@tag@@\make@df@tag@@@}
  723. \def\make@df@tag@@#1{%
  724.   \def\@currentlabel{#1}%
  725.   \gdef\df@tag{\maketag@@@{#1}}}
  726. \def\make@df@tag@@@#1{%
  727.   \def\@currentlabel{#1}%
  728.   \gdef\df@tag{\tagform@{#1}}}
  729. \def\notag{\nonumber}
  730. \newif\iftagsleft@
  731. \tagsleft@true
  732. \def\@eqnnum{\hbox to .01pt{}\rlap{\normalshape
  733.     \hskip -\displaywidth\tagform@\theequation}}
  734. \def\multilimits@{\bgroup
  735.   \Let@
  736.   \restore@math@cr
  737.   \default@tag
  738.  \baselineskip\fontdimen10 \scriptfont\tw@
  739.  \advance\baselineskip\fontdimen12 \scriptfont\tw@
  740.  \lineskip\thr@@\fontdimen8 \scriptfont\thr@@
  741.  \lineskiplimit\lineskip
  742.  \vbox\bgroup\ialign\bgroup\hfil$\m@th\scriptstyle{##}$\hfil\crcr}
  743. \def\Sb{_\multilimits@}
  744. \def\Sp{^\multilimits@}
  745. \def\endSb{\crcr\egroup\egroup\egroup}
  746. \let\endSp=\endSb
  747. \def\smallmatrix{\null\,\vcenter\bgroup
  748.  \Let@\restore@math@cr\default@tag
  749.  \baselineskip6\ex@ \lineskip1.5\ex@ \lineskiplimit\lineskip
  750.  \ialign\bgroup\hfil$\m@th\scriptstyle{##}$\hfil&&\thickspace\hfil
  751.  $\m@th\scriptstyle{##}$\hfil\crcr}
  752. \def\endsmallmatrix{\crcr\egroup\egroup\,}
  753. \newcount\c@MaxMatrixCols
  754. \c@MaxMatrixCols=10
  755. \def\matrix{\hskip -\arraycolsep\array{*\c@MaxMatrixCols c}}
  756. \def\endmatrix{\endarray \hskip -\arraycolsep}
  757. \@ifundefined{prepnext@tok}{%
  758.   \def\@array[#1]#2{%
  759.     \setbox\@arstrutbox\hbox{\vrule\@height\arraystretch\ht\strutbox
  760.        \@depth\arraystretch\dp\strutbox \@width\z@}%
  761.     \@mkpream{#2}\edef\@preamble{\ialign \noexpand\@halignto
  762.     \bgroup \tabskip\z@ \@arstrut \@preamble \tabskip\z@ \cr}%
  763.     \let\@startpbox\@@startpbox \let\@endpbox\@@endpbox
  764.     \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi\fi
  765.     \bgroup \let\par\@empty
  766.     \let\@sharp##\let\protect\relax
  767.     \lineskip\z@\baselineskip\z@\@preamble}%
  768. \begingroup \lccode`\~=`\@ \catcode`\~=\active % just to be sure!
  769. \lowercase{%
  770. \gdef\@xexpast#1*#2#3#4\@@{\begingroup
  771.   \def~{@}\edef\@tempa{#1}\@tempcnta#2\relax
  772.   \ifnum\@tempcnta >\z@
  773.     \@whilenum\@tempcnta >\z@\do
  774.       {\edef\@tempa{\@tempa#3}\advance\@tempcnta \m@ne}%
  775.     \let\@tempb\@xexpast
  776.   \else \let\@tempb\@xexnoop\fi
  777.   \expandafter\@tempb \@tempa #4\@@
  778.   \expandafter\endgroup
  779.   \expandafter\def\expandafter\@tempa\expandafter{\@tempa}%
  780. }% End of \@xexpast
  781. }% End of \lowercase
  782. \endgroup
  783. }{}% End of \@ifundefined test.
  784. \def\cases{\left\{\def\arraystretch{1.2}\hskip-\arraycolsep
  785.   \array{l@{\quad}l}}
  786. \def\endcases{\endarray\hskip-\arraycolsep\right.}
  787. \newif\ifinany@
  788. \newif\ifinalign@
  789. \newif\ifingather@
  790. \newcount\and@
  791. \newif\iftag@
  792. \newhelp\andhelp@
  793. {An extra & here is so disastrous that you should probably exit^^J
  794. and fix things up.}
  795. \newif\ifst@rred
  796. \newtoks\@envbody
  797. \def\addto@envbody#1{\@envbody\expandafter{\the\@envbody#1}}
  798. \def\collect@body#1{%
  799.   \@envbody{}%
  800.   \def\process@envbody{%
  801.     \expandafter#1\expandafter{\the\@envbody}}%
  802.   \expandafter\let\csname\@currenvir\endcsname\collect@@body
  803.   \csname\@currenvir\endcsname}
  804. \def\collect@@body#1\end#2{%
  805.   \def\@tempa{#2}%
  806.   \ifx\@tempa\@currenvir
  807.     \addto@envbody{#1}%
  808.     \expandafter\edef\csname\@currenvir\endcsname
  809.       {\noexpand\process@envbody\noexpand\end{\@tempa}}%
  810.   \else
  811.     \addto@envbody{#1\end{#2}}%
  812.   \fi
  813.   \csname\@currenvir\endcsname}
  814. \def\aligned{\RIfM@\else\nonmatherr@{\begin{aligned}}\fi
  815.   \null\,\new@ifnextchar[{\aligned@}{\aligned@[c]}}
  816. \def\aligned@[#1]{%
  817.   \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi\fi
  818.   \bgroup
  819.    \Let@\restore@math@cr
  820.    \default@tag
  821.    \ifinany@\else\openup\jot\fi
  822.    \ialign\bgroup\hfil\strut@$\m@th\displaystyle{##}$&%
  823.     $\m@th\displaystyle{{}##}$\hfil\crcr}
  824. \def\endaligned{\crcr\egroup\egroup}
  825. \newcount\atcount@
  826. \def\doat@#1{\toks@{\hfil\strut@$\m@th
  827.   \displaystyle{\the\hashtoks@}$&$\m@th\displaystyle
  828.   {{}\the\hashtoks@}$\hfil}%
  829.  \atcount@#1\relax\advance\atcount@\m@ne
  830.  \loop\ifnum\atcount@>\z@\toks@\expandafter{\the\toks@&\hfil$\m@th
  831.   \displaystyle{\the\hashtoks@}$&$\m@th
  832.   \displaystyle{{}\the\hashtoks@}$\hfil}\advance
  833.  \atcount@\m@ne\repeat
  834.  \xdef\preamble@{\the\toks@}\xdef\preamble@@{\preamble@}}
  835. \def\alignedat#1{\null\,\vcenter\bgroup\doat@{#1}\Let@
  836.  \restore@math@cr\default@tag
  837.  \ifinany@\else\openup\jot\fi\ialign\bgroup\span\preamble@@\crcr}
  838. \let\endalignedat =\endaligned
  839. \def\gathered{\RIfM@\else\nonmatherr@{\begin{gathered}}\fi
  840.  \null\,\vcenter\bgroup\Let@\restore@math@cr
  841.  \ifinany@\else\openup\jot\fi\ialign
  842.  \bgroup\hfil\strut@$\m@th\displaystyle{##}$\hfil\crcr}
  843. \let\endgathered =\endaligned
  844. \def\tag@in@align{%
  845.   \iftag@\DN@{\invalid@tag{Multiple \string\tag}}\else
  846.    \global\tag@true
  847.    \if@eqnsw\global\@eqnswfalse\fi
  848.    \let\next@\make@df@tag\fi
  849.   \next@}
  850. \def\math@cr@@@align{%
  851.   \if@eqnsw\global\tag@true\fi
  852.   \iftag@
  853.    \ifcase\and@
  854.     \DN@{&&}\else
  855.     \DN@{&}\fi\else
  856.     \let\next@\relax\fi
  857.   \next@
  858.   \relax
  859.   \if@eqnsw\tagform@\theequation\stepcounter{equation}\else
  860.   \iftag@\df@tag\fi\fi
  861.   \global\@eqnswtrue\cr}
  862. \def\Tag@{\iftag@\else\firstchoice@true
  863.   \err@{Extra & on this line}{\the\andhelp@}\fi}
  864. \newdimen\lwidth@
  865. \newdimen\rwidth@
  866. \newdimen\maxlwidth@
  867. \newdimen\maxrwidth@
  868. \newdimen\totwidth@
  869. \def\measure@#1{\lwidth@\z@\rwidth@\z@\maxlwidth@\z@\maxrwidth@\z@
  870.  \global\and@\z@
  871.  \setbox@ne\vbox{%
  872.    \everycr{\noalign{\global\tag@false\global\and@\z@}}\Let@
  873.    \let\tag\gobble@tag
  874.    \let\notag\@empty \let\nonumber\@empty
  875.    \firstchoice@false
  876.     \halign{\setboxz@h{$\m@th\displaystyle{\@lign##}$}%
  877.      \global\lwidth@\wdz@
  878.      \ifdim\lwidth@>\maxlwidth@\global\maxlwidth@\lwidth@\fi
  879.      \global\advance\and@\@ne
  880.      &\setboxz@h{$\m@th\displaystyle{{}\@lign##}$}%
  881.      \global\rwidth@\wdz@
  882.      \ifdim\rwidth@>\maxrwidth@\global\maxrwidth@\rwidth@\fi
  883.      \global\advance\and@\@ne
  884.      &\Tag@\@gobble{##}\crcr#1\crcr}}%
  885.  \totwidth@\maxlwidth@\advance\totwidth@\maxrwidth@}
  886. \def\displ@y{\global\dt@ptrue\openup\jot\m@th
  887.   \everycr{\noalign{\ifdt@p \global\dt@pfalse
  888.       \vskip-\lineskiplimit \vskip\normallineskiplimit
  889.       \else \penalty\@eqpen \fi}}}
  890. \def\displ@y@{\global\dt@ptrue\openup\jot
  891.   \everycr{\noalign{\global\tag@false
  892.                    \global\and@\z@
  893.                    \global\dspbrk@lvl\m@ne
  894.                    \ifdt@p\global\dt@pfalse
  895.       \vskip-\lineskiplimit\vskip\normallineskiplimit\else
  896.       \penalty\@eqpen\fi}}}
  897. \def\black@#1{\noalign{\ifdim#1>\displaywidth
  898.  \dimen@\prevdepth\nointerlineskip
  899.  \vskip-\ht\strutbox@\vskip-\dp\strutbox@
  900.  \vbox{\noindent\hbox to#1{\strut@\hfill}}%
  901.  \prevdepth\dimen@
  902.  \fi}}
  903. \def\align{\ifingather@
  904.   {\ifnum0=`}\fi
  905.   \DN@{\@nameuse{align (in \string\gather)}}%
  906.   \else \ifmmode\nomath@env
  907.     \DN@{\let\endalign\relax\@gobble}\else
  908.   $$\stepcounter{equation}%
  909.   \st@rredfalse\let\next@\align@\fi\fi
  910.  \collect@body\next@}
  911. \@namedef{align*}{\ifingather@
  912.   {\ifnum0=`}\fi
  913.   \DN@{\@nameuse{align* (in \string\gather)}}\else
  914.    \ifmmode\nomath@env
  915.     \DN@{\@namedef{endalign*}{}\@gobble}\else
  916.    $$\st@rredtrue
  917.   \let\next@\align@\fi\fi
  918.  \collect@body\next@}
  919. \newdimen\lineht@
  920. \def\align@{\inalign@true\inany@true
  921.  \displaybreak@\intertext@
  922.  \let\math@cr@@@\math@cr@@@align
  923.  \let\tag\tag@in@align
  924.  \global\and@\z@\global\dspbrk@lvl\m@ne
  925.  \iftagsleft@\DN@{\@nameuse{align }}\else
  926.   \DN@{\@nameuse{align \space}}\fi\next@}
  927. \@namedef{align }#1{%
  928.  \measure@{#1}\global\and@\z@\global\dspbrk@lvl\m@ne
  929.  \ifdim\totwidth@>\displaywidth\let\displaywidth@\totwidth@\else
  930.   \let\displaywidth@\displaywidth\fi
  931.  \ifingather@\everycr{\noalign{\global\and@\z@
  932.                       \global\dspbrk@lvl\m@ne}}\else\displ@y@\fi
  933.  \Let@
  934.  \ifst@rred\else\let\@currentlabel\theequation\fi
  935.  \tabskip\@centering\halign to\displaywidth\bgroup
  936.   \ifst@rred\nonumber\fi
  937.   \hfil\strut@
  938.   \setboxz@h{\global\tag@false$\m@th\displaystyle{\@lign##}$}%
  939.   \global\lwidth@\wdz@\global\lineht@\ht\z@
  940.   \boxz@\global\advance\and@\@ne
  941.   \tabskip\z@skip&\setboxz@h{$\m@th\displaystyle{{}\@lign##}$}%
  942.   \global\rwidth@\wdz@\ifdim\ht\z@>\lineht@\global\lineht@\ht\z@\fi
  943.   \boxz@\hfil\global\advance\and@\@ne
  944.   \tabskip\@centering&\kern-\displaywidth@
  945.   \setboxz@h{\@lign\strut@{##}}%
  946.   \dimen@\displaywidth\advance\dimen@-\totwidth@
  947.   \divide\dimen@\tw@\advance\dimen@\maxlwidth@\advance\dimen@-\lwidth@
  948.   \ifdim\dimen@<\tw@\wdz@
  949.    \rlap{\vbox{\normalbaselines\boxz@\vbox to\lineht@{}}}\else
  950.    \rlap{\boxz@}\fi
  951.   \tabskip\displaywidth@\crcr#1}
  952. \@namedef{align \space}#1{%
  953.  \measure@{#1}\global\and@\z@\global\dspbrk@lvl\m@ne
  954.  \ifingather@\everycr{\noalign{\global\and@\z@
  955.                   \global\dspbrk@lvl\m@ne}}\else\displ@y@\fi
  956.  \Let@
  957.  \ifst@rred\else\let\@currentlabel\theequation\fi
  958.  \tabskip\@centering
  959.  \halign to\displaywidth\bgroup
  960.   \ifst@rred\nonumber\fi
  961.   \hfil\strut@
  962.   \setboxz@h{\global\tag@false$\m@th\displaystyle{\@lign##}$}%
  963.   \global\lwidth@\wdz@\boxz@\global\advance\and@\@ne
  964.   \tabskip\z@skip
  965.   &\setboxz@h{$\m@th\displaystyle{{}\@lign##}$}%
  966.   \global\rwidth@\wdz@\boxz@\hfill\global\advance\and@\@ne
  967.   \tabskip\@centering
  968.   &\setboxz@h{\@lign\strut@{##}}%
  969.   \dimen@\displaywidth\advance\dimen@-\totwidth@
  970.   \divide\dimen@\tw@\advance\dimen@\maxrwidth@\advance\dimen@-\rwidth@
  971.   \ifdim\dimen@<\tw@\wdz@\llap{\vtop{\normalbaselines\null\boxz@}}%
  972.   \else\llap{\boxz@}\fi
  973.   \tabskip\z@skip
  974.   \crcr#1}
  975. \def\endalign{\math@cr@@@align
  976.   \black@\totwidth@
  977.   \egroup$$\global\@ignoretrue\setb@ck}
  978. \@namedef{endalign*}{\math@cr@@@align\black@\totwidth@
  979.   \egroup$$\global\@ignoretrue}
  980. \@namedef{align (in \string\gather)}{%
  981.   \ifst@rred\stepcounter{equation}\fi
  982.   \def\endalign{\@nameuse{endalign (in \string\gather)}\ifnum0=`{\fi}}%
  983.   \vcenter\bgroup\st@rredfalse
  984.     \collect@body\align@}
  985. \@namedef{endalign (in \string\gather)}{%
  986.   \math@cr@@@align\black@\totwidth@
  987.   \egroup\egroup
  988.   \ifst@rred\setb@ck\fi% this ifst@rred is set by the enclosing gather
  989.   \global\tag@false\global\@eqnswfalse}
  990. \@namedef{align* (in \string\gather)}{%
  991.   \@namedef{endalign*}{\@nameuse{endalign* (in \string\gather)}%
  992.                        \ifnum0=`{\fi}}%
  993.   \vcenter\bgroup\st@rredtrue
  994.     \collect@body\align@}
  995. \@namedef{endalign* (in \string\gather)}{%
  996.   \math@cr@@@align\black@\totwidth@\egroup\egroup
  997.   \global\tag@false\global\@eqnswfalse}
  998. \newif\ifxat@
  999. \def\alignat#1{%
  1000.  \ifmmode\nomath@env\DN@{\let\endalignat\relax\@gobble}\else$$%
  1001.  \st@rredfalse\stepcounter{equation}\let\@currentlabel\theequation
  1002.  \DN@{\@nameuse{alignat }#1}\fi
  1003.  \collect@body\next@}
  1004. \@namedef{alignat*}#1{%
  1005.  \ifmmode\nomath@env\DN@{\@namedef{endalignat*}{}\@gobble}\else$$%
  1006.  \st@rredtrue
  1007.  \DN@{\@nameuse{alignat }#1}\fi
  1008.  \collect@body\next@}
  1009. \newif\ifmeasuring@
  1010. \newbox\savealignat@
  1011. \def\math@cr@@@alignat{%
  1012.   \if@eqnsw\global\tag@true\fi
  1013.   \iftag@
  1014.    \multiply\count@\tw@
  1015.    \xdef\next@{}\loop\ifnum\count@>\and@\xdef\next@{&\next@}%
  1016.     \advance\count@\m@ne\repeat\else
  1017.    \let\next@\relax\fi
  1018.   \next@
  1019.   \relax
  1020.   \if@eqnsw\tagform@\theequation\stepcounter{equation}\else
  1021.   \iftag@\df@tag\fi\fi
  1022.   \global\@eqnswtrue\cr}%
  1023. \@namedef{alignat }#1#2{%
  1024.  \inany@true\xat@false
  1025.  \let\tag\tag@in@align
  1026.  \def\math@cr@@@{\count@#1\relax\math@cr@@@alignat}%
  1027.  \displaybreak@\intertext@
  1028.  \displ@y@\measuring@true
  1029.  \setbox\savealignat@\hbox{$\m@th\displaystyle\Let@
  1030.   \attag@{#1}%
  1031.   \vbox{\firstchoice@false\halign{\span\preamble@@\crcr#2\crcr}}$}%
  1032.  \measuring@false
  1033.  \Let@
  1034.  \ifst@rred\else\global\@eqnswtrue\fi
  1035.  \attag@{#1}%
  1036.  \tabskip\@centering\halign to\displaywidth\bgroup
  1037.   \ifst@rred\nonumber\fi
  1038.   \span\preamble@@\crcr#2}
  1039. \def\endalignat{\math@cr@@@\black@{\wd\savealignat@}%
  1040.      \egroup\setb@ck$$\global\@ignoretrue}
  1041. \@namedef{endalignat*}{\math@cr@@@\black@{\wd\savealignat@}\egroup
  1042.   $$\global\@ignoretrue}
  1043. \def\xalignat#1{%
  1044.  \ifmmode\nomath@env\DN@{\let\endxalignat\relax\@gobble}\else$$%
  1045.  \st@rredfalse\stepcounter{equation}\let\@currentlabel\theequation
  1046.  \DN@{\@nameuse{xalignat }#1}\fi
  1047.  \collect@body\next@}
  1048. \@namedef{xalignat*}#1{%
  1049.  \ifmmode\nomath@env\DN@{\@namedef{endxalignat*}{}\@gobble}\else$$%
  1050.  \st@rredtrue
  1051.  \DN@{\@nameuse{xalignat }#1}\fi
  1052.  \collect@body\next@}
  1053. \let\endxalignat=\endalignat
  1054. \expandafter\let\csname endxalignat*\expandafter
  1055.   \endcsname\csname endalignat*\endcsname
  1056. \@namedef{xalignat }#1#2{%
  1057.  \inany@true\xat@true
  1058.  \let\tag\tag@in@align
  1059.  \def\math@cr@@@{\count@#1\relax\math@cr@@@alignat}%
  1060.  \displaybreak@\intertext@
  1061.  \displ@y@\measuring@true
  1062.  \setbox\savealignat@\hbox{$\m@th\displaystyle\Let@
  1063.   \attag@{#1}\vbox{\firstchoice@false
  1064.    \halign{\span\preamble@@\crcr#2\crcr}}$}%
  1065.  \measuring@false
  1066.  \Let@
  1067.  \ifst@rred\else\global\@eqnswtrue\fi
  1068.   \attag@{#1}\tabskip\@centering\halign to\displaywidth\bgroup
  1069.    \span\preamble@@\crcr#2}
  1070. \def\attag@#1{%
  1071.  \let\TAG@\Tag@\let\Tag@0%
  1072.  \ifmeasuring@\def\llap@##1{\setboxz@h{##1}\hbox to\tw@\wdz@{}}%
  1073.   \def\rlap@##1{\setboxz@h{##1}\hbox to\tw@\wdz@{}}\else
  1074.   \let\llap@\llap\let\rlap@\rlap\fi
  1075.  \toks@{\hfil\strut@$\m@th\displaystyle{\@lign\the\hashtoks@}$%
  1076.   \tabskip\z@skip
  1077.   \global\advance\and@\@ne
  1078.   &$\m@th\displaystyle{{}\@lign\the\hashtoks@}$\hfil
  1079.   \ifxat@\tabskip\@centering\fi\global\advance\and@\@ne}%
  1080.  \iftagsleft@
  1081.   \@temptokena{\tabskip\@centering&\Tag@\kern-\displaywidth
  1082.    \rlap@{\@lign
  1083.      \the\hashtoks@
  1084.     }%
  1085.    \global\advance\and@\@ne\tabskip\displaywidth}\else
  1086.   \@temptokena{\tabskip\@centering&\Tag@\llap@{\@lign
  1087.    \the\hashtoks@
  1088.   }\global\advance\and@\@ne\tabskip\z@skip}\fi
  1089.  \atcount@#1\relax\advance\atcount@\m@ne
  1090.  \loop\ifnum\atcount@>\z@
  1091.  \toks@\expandafter{\the\toks@&\hfil$\m@th\displaystyle{\@lign
  1092.   \the\hashtoks@}$\global\advance\and@\@ne
  1093.   \tabskip\z@skip
  1094.   &$\m@th\displaystyle{{}\@lign\the\hashtoks@}$\hfil\ifxat@
  1095.   \tabskip\@centering\fi\global\advance\and@\@ne}\advance\atcount@\m@ne
  1096.  \repeat
  1097.  \xdef\preamble@{\the\toks@\the\@temptokena}%
  1098.  \xdef\preamble@@{\preamble@}%
  1099.  \let\Tag@\TAG@}
  1100. \def\xxalignat#1{%
  1101.  \ifmmode\nomath@env\DN@{\let\endxxalignat\relax\@gobble}\else$$%
  1102.  \DN@{\@nameuse{xxalignat }#1}\fi
  1103.  \collect@body\next@}
  1104. \@namedef{xxalignat }#1#2{\inany@true
  1105.  \displaybreak@\intertext@
  1106.  \displ@y\setbox\savealignat@\hbox{$\m@th\displaystyle\Let@
  1107.  \xxattag@{#1}%
  1108.  \vbox{\firstchoice@false\halign{\span\preamble@@\crcr#2\crcr}}$}%
  1109.  \Let@\xxattag@{#1}\tabskip\z@skip\halign to\displaywidth\bgroup
  1110.   \span\preamble@@\crcr#2}
  1111. \expandafter\let\expandafter\endxxalignat\csname endxalignat*\endcsname
  1112. \def\xxattag@#1{\toks@{\tabskip\z@skip\hfil\strut@
  1113.  $\m@th\displaystyle{\the\hashtoks@}$&%
  1114.  $\m@th\displaystyle{{}\the\hashtoks@}$\hfil\tabskip\@centering&}%
  1115.  \atcount@#1\relax\advance\atcount@\m@ne\loop\ifnum\atcount@>\z@
  1116.  \toks@
  1117.   \expandafter
  1118.    {\the\toks@&\hfil$\m@th\displaystyle{\the\hashtoks@}$%
  1119.   \tabskip\z@skip&$\m@th\displaystyle{{}\the\hashtoks@}$\hfil
  1120.   \tabskip\@centering}\advance\atcount@\m@ne\repeat
  1121.  \xdef\preamble@{\the\toks@\tabskip\z@skip}\xdef\preamble@@{\preamble@}}
  1122. \newdimen\gwidth@
  1123. \newdimen\gmaxwidth@
  1124. \def\gmeasure@#1{\gwidth@\z@\gmaxwidth@\z@\setbox@ne\vbox{\Let@
  1125.  \firstchoice@false\let\tag\gobble@tag
  1126.  \halign{\setboxz@h{$\m@th\displaystyle{##}$}\global\gwidth@\wdz@
  1127.  \ifdim\gwidth@>\gmaxwidth@\global\gmaxwidth@\gwidth@\fi
  1128.  &\@gobble{##}\crcr#1\crcr}}}
  1129. \def\math@cr@@@gather{%
  1130.   \if@eqnsw\global\tag@true\fi
  1131.   \iftag@
  1132.     \DN@{&\relax \if@eqnsw
  1133.                     \tagform@\theequation \stepcounter{equation}%
  1134.                  \else\iftag@\df@tag\fi\fi}%
  1135.   \else
  1136.     \expandafter\@gobble\fi
  1137.   \next@
  1138.   \global\@eqnswtrue\cr}
  1139. \def\gather{%
  1140.  \ifmmode\nomath@env\DN@{\let\endgather\relax\@gobble}\else $$%
  1141.   \ingather@true\inany@true
  1142.   \stepcounter{equation}%
  1143.   \let\tag\tag@in@align\st@rredfalse
  1144.   \displaybreak@\intertext@
  1145.   \displ@y
  1146.   \Let@\let\@currentlabel\theequation
  1147.   \let\math@cr@@@\math@cr@@@gather
  1148.   \iftagsleft@\DN@{\@nameuse{gather }}\else
  1149.    \DN@{\@nameuse{gather \space}}\fi\fi
  1150.  \collect@body\next@}
  1151. \@namedef{gather*}{%
  1152.  \ifmmode\nomath@env\DN@{\@namedef{endgather*}{}\@gobble}\else $$%
  1153.   \ingather@true\inany@true
  1154.   \let\tag\tag@in@align\st@rredtrue
  1155.   \displaybreak@\intertext@
  1156.   \displ@y\Let@
  1157.   \let\math@cr@@@\math@cr@@@gather
  1158.   \iftagsleft@\DN@{\@nameuse{gather }}\else
  1159.    \DN@{\@nameuse{gather \space}}\fi\fi
  1160.  \collect@body\next@}
  1161. \newdimen\glineht@
  1162. \@namedef{gather \space}#1{%
  1163.  \gmeasure@{#1}\global\dt@ptrue\tabskip\@centering
  1164.  \halign to\displaywidth\bgroup
  1165.   \ifst@rred\nonumber\else\global\@eqnswtrue\fi
  1166.   \hfil\strut@\setboxz@h{\global\tag@false$\m@th\displaystyle{##}$}%
  1167.   \global\gwidth@\wdz@\boxz@\hfil&
  1168.   \setboxz@h{\strut@{##}}%
  1169.   \dimen@\displaywidth\advance\dimen@-\gwidth@
  1170.   \ifdim\dimen@>\tw@\wdz@\llap{\boxz@}\else
  1171.   \llap{\vtop{\normalbaselines\null\boxz@}}\fi
  1172.   \tabskip\z@skip\crcr#1}
  1173. \def\endgather{\math@cr@@@
  1174.   \black@\gmaxwidth@\egroup $$\setb@ck\global\@ignoretrue}
  1175. \@namedef{endgather*}{\math@cr@@@
  1176.   \black@\gmaxwidth@\egroup $$\global\@ignoretrue}
  1177. \@namedef{gather }#1{%
  1178.  \gmeasure@{#1}\global\dt@ptrue
  1179.  \ifdim\gmaxwidth@>\displaywidth\let\gdisplaywidth@\gmaxwidth@\else
  1180.  \let\gdisplaywidth@\displaywidth\fi\tabskip\@centering
  1181.  \halign to\displaywidth\bgroup
  1182.   \ifst@rred\nonumber\else\global\@eqnswtrue\fi
  1183.   \hfil\strut@\setboxz@h{\global\tag@false$\m@th\displaystyle{##}$}%
  1184.   \global\gwidth@\wdz@
  1185.   \global\glineht@\ht\z@\boxz@\hfil&\kern-\gdisplaywidth@
  1186.   \setboxz@h{\strut@{##}}%
  1187.   \dimen@\displaywidth\advance\dimen@-\gwidth@
  1188.   \ifdim\dimen@>\tw@\wdz@\rlap{\boxz@}\else
  1189.   \rlap{\vbox{\normalbaselines\boxz@\vbox to\glineht@{}}}\fi
  1190.   \tabskip\gdisplaywidth@\crcr#1}
  1191. \def\split{%
  1192.  \ifinany@\let\next@\insplit@\else
  1193.   \DN@{\err@{\string\begin{split} is not allowed
  1194.     here.  Try the `aligned' environment.}\@ehb}\fi
  1195.  \next@}
  1196. \def\insplit@{\global\setbox\z@\vbox\bgroup
  1197.   \Let@ \restore@math@cr \default@tag % disallow use of \tag here
  1198.   \ialign\bgroup \hfil\strut@
  1199.    $\m@th\displaystyle{##}$&$\m@th\displaystyle{{}##}$\hfill\crcr}
  1200. \def\endsplit{\crcr\egroup\egroup
  1201.  \iftagsleft@\expandafter\lendsplit@\else
  1202.   \expandafter\rendsplit@\fi}
  1203. \def\rendsplit@{\global\setbox9 \vbox
  1204.  {\unvcopy\z@\global\setbox8 \lastbox\unskip}%
  1205.  \setbox@ne\hbox{\unhcopy8 \unskip\global\setbox\tw@\lastbox
  1206.  \unskip\global\setbox\thr@@\lastbox}%
  1207.  \global\setbox7 \hbox{\unhbox\tw@\unskip}%
  1208.  \ifinalign@\ifctagsplit@
  1209.   \gdef\split@{\hbox to\wd\thr@@{}&
  1210.    \vcenter{\vbox{\moveleft\wd\thr@@\boxz@}}}%
  1211.  \else\gdef\split@{&\vbox{\moveleft\wd\thr@@\box9}\crcr
  1212.   \box\thr@@&\box7}\fi
  1213.  \else
  1214.   \ifctagsplit@\gdef\split@{\vcenter{\boxz@}}\else
  1215.   \gdef\split@{\box9\crcr\hbox{\box\thr@@\box7}}\fi
  1216.  \aftergroup\split@}
  1217. \def\lendsplit@{\global\setbox9\vtop{\unvcopy\z@}%
  1218.  \setbox@ne\vbox{\unvcopy\z@\global\setbox8\lastbox}%
  1219.  \setbox@ne\hbox{\unhcopy8\unskip\setbox\tw@\lastbox
  1220.   \unskip\global\setbox\thr@@\lastbox}%
  1221.  \ifinalign@\ifctagsplit@
  1222.   \gdef\split@{\hbox to\wd\thr@@{}&
  1223.   \vcenter{\vbox{\moveleft\wd\thr@@\box9}}}%
  1224.   \else
  1225.   \gdef\split@{\hbox to\wd\thr@@{}&\vbox{\moveleft\wd\thr@@\box9}}\fi
  1226.  \else
  1227.   \ifctagsplit@\gdef\split@{\vcenter{\box9}}\else
  1228.   \gdef\split@{\box9}\fi
  1229.  \fi\aftergroup\split@}
  1230. \newdimen\multlinegap
  1231. \multlinegap10pt
  1232. \newdimen\multlinetaggap@
  1233. \multlinetaggap@10pt
  1234. \def\multline{%
  1235.  \ifmmode\nomath@env\DN@{\let\endmultline\relax\@gobble}%
  1236.  \else $$\DN@{\collect@body\multline@}\fi
  1237.  \st@rredfalse\@eqnswtrue \let\@currentlabel\theequation
  1238.  \stepcounter{equation}\next@}
  1239. \@namedef{multline*}{%
  1240.  \ifmmode\nomath@env\DN@{\@namedef{endmultline*}{}\@gobble}%
  1241.  \else $$\DN@{\collect@body\multline@}\fi
  1242.  \st@rredtrue\@eqnswfalse \let\@currentlabel\@empty
  1243.  \next@}
  1244. \def\multline@{\inany@true\displaybreak@
  1245.  \global\tag@false \let\tag\tag@in@align
  1246.  \iftagsleft@
  1247.   \expandafter\lmultline@@\else
  1248.   \expandafter\rmultline@@\fi}
  1249. \newdimen\mwidth@
  1250. \def\rmmeasure@#1{%
  1251.  \def\shoveleft##1{##1}\def\shoveright##1{##1}%
  1252.  \setbox@ne\vbox{\firstchoice@false\Let@\halign{\setboxz@h
  1253.   {$\m@th\@lign\displaystyle{}##$}\global\mwidth@\wdz@
  1254.   \crcr#1\crcr}}}
  1255. \newdimen\mlineht@
  1256. \newif\ifzerocr@
  1257. \newif\ifonecr@
  1258. \def\lmmeasure@#1{\global\zerocr@true\global\onecr@false
  1259.  \everycr{\noalign{\ifonecr@\global\onecr@false\fi
  1260.   \ifzerocr@\global\zerocr@false\global\onecr@true\fi}}%
  1261.   \def\shoveleft##1{##1}\def\shoveright##1{##1}%
  1262.  \setbox@ne\vbox{\Let@\firstchoice@false\halign{\setboxz@h
  1263.   {$\m@th\@lign\displaystyle{}##$}\ifonecr@\global\mwidth@\wdz@
  1264.   \global\mlineht@\ht\z@\fi\crcr#1\crcr}}}
  1265. \newbox\mtagbox@
  1266. \newdimen\ltwidth@
  1267. \newdimen\rtwidth@
  1268. \def\lmultline@@#1{%
  1269.  \lmmeasure@{#1}%
  1270.  \setbox\mtagbox@\hbox{%
  1271.   \iftag@\df@tag\else
  1272.    \if@eqnsw
  1273.     \global\tag@true
  1274.     \tagform@\theequation\fi\fi}%
  1275.  \dimen@\mwidth@\advance\dimen@\wd\mtagbox@
  1276.  \advance\dimen@\multlinetaggap@
  1277.  \ifdim\dimen@>\displaywidth\ltwidth@\z@\else\ltwidth@\wd\mtagbox@\fi
  1278.  \lmultline@@@#1}
  1279. \def\lmultline@@@{\displ@y
  1280.  \def\shoveright##1{##1\hfilneg\hskip\multlinegap}%
  1281.  \def\shoveleft##1{\setboxz@h{$\m@th\displaystyle{}##1$}%
  1282.   \setbox@ne\hbox{$\m@th\displaystyle##1$}%
  1283.   \hfilneg
  1284.   \iftag@
  1285.    \ifdim\ltwidth@>\z@\hskip\ltwidth@\hskip\multlinetaggap@\fi
  1286.   \else\hskip\multlinegap\fi\hskip.5\wd@ne\hskip-.5\wdz@##1}%
  1287.   \halign\bgroup\Let@ \let\tag\gobble@tag
  1288.    \hbox to\displaywidth
  1289.    {\strut@$\m@th\displaystyle\hfil{}##\hfil$}\crcr
  1290.    \hfilneg
  1291.    \iftag@
  1292.     \ifdim\ltwidth@>\z@
  1293.      \box\mtagbox@\hskip\multlinetaggap@
  1294.     \else
  1295.      \rlap{\vbox{\normalbaselines\hbox{\strut@\box\mtagbox@}%
  1296.      \vbox to\mlineht@{}}}\fi
  1297.    \else\hskip\multlinegap\fi}
  1298. \def\rmultline@@#1{%
  1299.  \rmmeasure@{#1}%
  1300.  \setbox\mtagbox@\hbox{%
  1301.   \iftag@\df@tag\else
  1302.    \if@eqnsw \global\tag@true
  1303.      \tagform@\theequation\fi\fi}%
  1304.  \dimen@\mwidth@\advance\dimen@\wd\mtagbox@
  1305.  \advance\dimen@\multlinetaggap@
  1306.  \ifdim\dimen@>\displaywidth\rtwidth@\z@\else\rtwidth@\wd\mtagbox@\fi
  1307.  \rmultline@@@#1}
  1308. \def\rmultline@@@{\displ@y
  1309.  \def\shoveright##1{##1\hfilneg\iftag@\ifdim\rtwidth@>\z@
  1310.   \hskip\rtwidth@\hskip\multlinetaggap@\fi\else\hskip\multlinegap\fi}%
  1311.  \def\shoveleft##1{\setboxz@h{$\m@th\displaystyle{}##1$}%
  1312.   \setbox@ne\hbox{$\m@th\displaystyle##1$}%
  1313.   \hfilneg\hskip\multlinegap\hskip.5\wd@ne\hskip-.5\wdz@##1}%
  1314.  \halign\bgroup\Let@\let\tag\gobble@tag
  1315.   \hbox to\displaywidth
  1316.   {\strut@$\m@th\displaystyle\hfil{}##\hfil$}\crcr
  1317.  \hfilneg\hskip\multlinegap}
  1318. \def\endmultline{\iftagsleft@\expandafter\lendmultline@\else
  1319.   \expandafter\rendmultline@\fi\global\@ignoretrue}
  1320. \expandafter\let\csname endmultline*\endcsname=\endmultline
  1321. \def\lendmultline@{\hfilneg\hskip\multlinegap\crcr\egroup$$}
  1322. \def\rendmultline@{\iftag@
  1323.  \ifdim\rtwidth@>\z@
  1324.   \hskip\multlinetaggap@\box\mtagbox@
  1325.  \else\llap{\vtop{\normalbaselines\null\hbox{\strut@\box\mtagbox@}}}\fi
  1326.  \else\hskip\multlinegap\fi
  1327.  \hfilneg\crcr\egroup$$}
  1328. \expandafter\def
  1329.  \expandafter\@arrayparboxrestore
  1330.   \expandafter{\@arrayparboxrestore
  1331.                \inany@false\ingather@false\inalign@false
  1332.    \default@tag}
  1333. \def\equation{\gather\Invalid@\\}
  1334. \def\endequation{\endgather}
  1335. \@namedef{equation*}{\equation\nonumber}
  1336. \expandafter\let\csname endequation*\endcsname =\endequation
  1337. %% \CharacterTable
  1338. %%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
  1339. %%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
  1340. %%   Digits        \0\1\2\3\4\5\6\7\8\9
  1341. %%   Exclamation   \!     Double quote  \"     Hash (number) \#
  1342. %%   Dollar        \$     Percent       \%     Ampersand     \&
  1343. %%   Acute accent  \'     Left paren    \(     Right paren   \)
  1344. %%   Asterisk      \*     Plus          \+     Comma         \,
  1345. %%   Minus         \-     Point         \.     Solidus       \/
  1346. %%   Colon         \:     Semicolon     \;     Less than     \<
  1347. %%   Equals        \=     Greater than  \>     Question mark \?
  1348. %%   Commercial at \@     Left bracket  \[     Backslash     \\
  1349. %%   Right bracket \]     Circumflex    \^     Underscore    \_
  1350. %%   Grave accent  \`     Left brace    \{     Vertical bar  \|
  1351. %%   Right brace   \}     Tilde         \~}
  1352. \endinput
  1353. %% End of file `amstex.sty'.
  1354.